package com.dd.cloud.user.entity.aicms;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * <p>
 * 诊断结果表
 * </p>
 *
 * @author czg
 * @since 2022-04-27
 */
@Data
@EqualsAndHashCode
@Accessors(chain = true)
@Table(comment = "诊断结果表")
public class AicmsDiagnosticResult implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @Column(isKey = true, isAutoIncrement = true)
    private Integer id;

    /**
     * 使用者的id
     */
    @Column(length = 20, comment = "使用者的id")
    private String userId;

    /**
     * 使用者的类型 同登录类型
     */
    @Column(length = 20, comment = "使用者的类型 同登录类型")
    private String userType;

    /**
     * 使用者的姓名
     */
    @Column(length = 20, comment = "使用者的姓名")
    private String userName;

    /**
     * 机构id
     */
    @Column(comment = "机构id")
    private Integer mechanId;

    /**
     * 患者就诊卡id
     */
    @Column(length = 20, comment = "患者就诊卡id")
    private String medId;

    /**
     * 诊疗编号
     */
    @Column(length = 40, comment = "诊疗编号")
    private String tencode;

    /**
     * 患者姓名
     */
    @Column(length = 20, comment = "患者姓名")
    private String name;

    /**
     * 患者姓名拼音首字母
     */
    @Column(length = 20, comment = "患者姓名拼音首字母")
    private String namePinyin;

    /**
     * 性别
     */
    @Column(length = 8, comment = "性别")
    private String sex;

    /**
     * 年龄
     */
    @Column(length = 10, comment = "年龄")
    private String age;

    /**
     * 婚姻
     */
    @Column(length = 8, comment = "婚姻")
    private String maritalStatus;

    /**
     * 是否怀孕 1已怀孕 0未怀孕
     */
    @Column(length = 2, comment = "是否怀孕 1已怀孕 0未怀孕")
    private Integer pregnant;

    /**
     * 民族
     */
    @Column(length = 20, comment = "民族")
    private String ethnicity;

    /**
     * 手机号
     */
    @Column(length = 20, comment = "手机号")
    private String phoneNum;

    /**
     * 联系地址
     */
    @Column(length = 200, comment = "联系地址")
    private String contactAddr;

    /**
     * 家族病史
     */
    @Column(length = 200, comment = "家族病史")
    private String familyMedicalHistory;

    /**
     * 传染病史
     */
    @Column(length = 200, comment = "传染病史")
    private String contagionHistory;

    /**
     * 药物过敏史
     */
    @Column(length = 200, comment = "药物过敏史")
    private String drugAllergyHistory;

    /**
     * 科室名
     */
    @Column(length = 20, comment = "科室名")
    private String departmentName;

    /**
     * 疾病序号
     */
    @Column(length = 20, comment = "疾病序号")
    private String diseaseNO;

    /**
     * 疾病名
     */
    @Column(length = 20, comment = "疾病名")
    private String diseaseName;

    /**
     * 疾病名拼音首字母
     */
    @Column(length = 60, comment = "疾病名拼音首字母")
    private String diseaseNamePinyin;

    /**
     * 症状ids
     */
    @Column(length = 300, comment = "症状ids")
    private String symptomIds;

    /**
     * 症状名
     */
    @Column(length = 1500, comment = "症状名")
    private String symptomNames;

    /**
     * 诊断结果
     */
    @Column(type = MySqlTypeConstant.TEXT, comment = "诊断结果")
    private String result;

    /**
     * 辩证诊断
     */
    @Column(type = MySqlTypeConstant.TEXT, comment = "辩证诊断")
    private String caseFileDoc;

    /**
     * 处方
     */
    @Column(type = MySqlTypeConstant.TEXT, comment = "处方")
    private String prescription;

    /**
     * 养生食疗
     */
    @Column(type = MySqlTypeConstant.TEXT, comment = "养生食疗")
    private String advisoryPrescription;

    /**
     * 状态
     */
    @Column(type = MySqlTypeConstant.TINYINT, comment = "状态 -1删除 1正常")
    private Integer status;

    /**
     * 创建时间
     */
    @Column(comment = "创建时间")
    private LocalDateTime createTime;

    /**
     * 养生保健提取map
     */
    @TableField(exist = false)
    private Map<String, String> healthMap;
}
